package org.dromara.tearoom.api.domain.vo;

import cn.idev.excel.annotation.ExcelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;

import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

@Data
@NoArgsConstructor
public class RemoteHtlOrderVo implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;
    /**
     *
     */
    private String id;

    /**
     *
     */
    private Long userId;

    /**
     *
     */
    private Long roomId;

    /**
     *
     */
    private Long hotelId;

    /**
     * 入住开始日期
     */
    private LocalDate startDate;

    /**
     * 入住结束日期
     */
    private LocalDate endDate;

    /**
     * 总结
     */
    private Integer totalPrice;

    /**
     * 状态枚举
     */
    private Integer orderStatus;

    /**
     * 订单状态
     */
    private Integer paymentStatus;

    /**
     * 预付金额
     */
    private Integer prepayAmount;

    /**
     * 入住人电话
     */
    private String mobile;

    /**
     * 优惠劵id
     */
    private String couponId;

    /**
     * 支付方式（微信/支付宝）
     */
    private String paymentMethod;

    /**
     * 是否续订订单
     */
    private String isRenew;

    /**
     * 优惠金额
     */
    private Long couponPrice;

    /**
     * 优惠时长
     */
    private Long couponHour;

    /**
     * 预计收入
     */
    private Integer revenue;

    /**
     * 钥匙id
     */
    private String keyId;

    /**
     * 门锁密钥
     */
    private String doorKey;

    /**
     * 原续订id
     */
    private String renewId;
    /**
     * 退款编号
     */
    private String refundId;
    private String  name;
    private String arrivalTime;
    private List<Coupon> coupons;
    @Data
    public static class Coupon {

        /**
         * 优惠劵编号
         */
        private Long id;
        /**
         * 优惠劵名
         */
        private String name;

        /**
         * 是否设置满多少金额可用，单位：分
         */
        private Integer usePrice;

        /**
         * 生效开始时间
         */
        private LocalDateTime validStartTime;
        /**
         * 生效结束时间
         */
        private LocalDateTime validEndTime;

        /**
         * 优惠卷类型
         */
        private Integer type;

        /**
         * 优惠卷类型
         */
        private Integer plateType;

        /**
         * 优惠小时
         */
        private Double hourCount;

        /**
         * 折扣百分比
         */
        private Integer discountPercent;
        /**
         * 优惠金额，单位：分
         */
        private Integer discountPrice;
        /**
         * 折扣上限，单位：分
         */
        private Integer discountLimitPrice;

        /**
         * 是否匹配
         */
        private Boolean match;
        /**
         * 不匹配的原因
         */
        private String mismatchReason;

    }
}
